package se.webbzon.boltzmann.game.character;

import se.webbzon.oschi01.resourceset.ResourceSet;
import se.webbzon.oschi01.textureset.Texture3D;

public abstract class AbstractCharacterTextureSet {
	
	/** Returns the texture set used when the character is facing upwards and left,
	 * which is associated with a given action. **/
	public abstract ResourceSet<Texture3D> getLeftUp(CharacterActionEnum action);
	
	/** Returns the texture set used when the character is facing downwards and left,
	 * which is associated with a given action. **/
	public abstract ResourceSet<Texture3D> getLeftDown(CharacterActionEnum action);
	
	/** Returns the texture set used when the character is facing upwards and right,
	 * which is associated with a given action. **/
	public abstract ResourceSet<Texture3D> getRightUp(CharacterActionEnum action);
	
	/** Returns the texture set used when the character is facing downwards and right,
	 * which is associated with a given action. **/
	public abstract ResourceSet<Texture3D> getRightDown(CharacterActionEnum action);
	
	/** Returns the texture speed used for the given action. **/
	public abstract double getTextureSpeed(CharacterActionEnum action);
	
	/** Returns true if the given action is supported by this character. **/
	public abstract boolean hasAction(CharacterActionEnum action);

}

